

package main.new_2024.month_06;


import java.util.HashSet;
import java.util.Set;

/**
 * @Description: todo 575. 分糖果
 * Alice 有 n 枚糖，其中第 i 枚糖的类型为 candyType[i] 。Alice 注意到她的体重正在增长，所以前去拜访了一位医生。
 * 医生建议 Alice 要少摄入糖分，只吃掉她所有糖的 n / 2 即可（n 是一个偶数）。Alice 非常喜欢这些糖，她想要在遵循医生建议的情况下，尽可能吃到最多不同种类的糖。
 * 给你一个长度为 n 的整数数组 candyType ，返回： Alice 在仅吃掉 n / 2 枚糖的情况下，可以吃到糖的 最多 种类数。
 * todo 2928. 给小朋友们分糖果 I
 * 给你两个正整数 n 和 limit 。
 * 请你将 n 颗糖果分给 3 位小朋友，确保没有任何小朋友得到超过 limit 颗糖果，请你返回满足此条件下的 总方案数 。
 *
 * @Author: Take-off
 * @Date: 1:00 PM 2024/2/27
 * @Param:
 * @return:
 **/
public class Solution0605 {

    //给小朋友们分糖果 I
    public int distributeCandies(int n, int limit) {
        int count = 0;
        //零界点
        if (limit * 3 < n){
            return count;
        }
        for (int i = 0;i <= limit ; i++){
            for (int j = 0; j <= limit; j++){
                int k = n - i - j;
                if (k >= 0 && k <= limit){
                    count++;
                }
            }
        }
        return count;
    }
    public static void main(String[] args) {
        Solution0605 test = new Solution0605();
        int i = test.distributeCandies(3, 3);
        System.out.println(i);

    }

    //分糖果
    public int distributeCandies(int[] candyType) {
        int count = 0;
        int lenth = 0;
        Set<Integer> set = new HashSet<>();
        for (int temp:candyType){
            if (!set.contains(temp)){
                set.add(temp);
                count++;
            }
            lenth++;
        }
        return Math.min(lenth/2,count);
    }

}

